In [1]:
# from google.colab import drive
# drive.mount('/content/gdrive')
In [2]:
#  cd /content/gdrive/MyDrive/Test_Data_Analyst

Read Dataset

In [1]:
import pandas as pd
In [2]:
df = pd.read_excel('Tes Data Analytics Analyst.xlsx',sheet_name='dataset')
In [3]:
#melihat info dari masing coloumn baik data type dan juga null value
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 513 entries, 0 to 512
Data columns (total 19 columns):
 #   Column                                  Non-Null Count  Dtype  
---  ------                                  --------------  -----  
 0   ID                                      513 non-null    int64  
 1   Kota_Kabupaten                          513 non-null    object 
 2   Provinsi                                505 non-null    object 
 3   Area                                    513 non-null    object 
 4   Regional                                513 non-null    object 
 5   Jumlah_Kelurahan_Desa                   513 non-null    object 
 6   PDRB                                    513 non-null    int64  
 7   PDRB_Per_Kapita                         513 non-null    int64  
 8   Indeks_Pembangunan_Manusia              513 non-null    float64
 9   Jumlah_Penduduk                         513 non-null    int64  
 10  Luas_Wilayah                            513 non-null    float64
 11  Dana_Alokasi_Umum                       513 non-null    int64  
 12  Pengeluaran_Riil_per_Kapita_ per_Tahun  513 non-null    float64
 13  Nilai_UMR                               513 non-null    object 
 14  Jumlah_Penduduk_Miskin                  513 non-null    float64
 15  Jumlah_Penduduk_Bekerja                 513 non-null    float64
 16  Pengguna_Internet                       513 non-null    int64  
 17  Pemilik_Ponsel                          507 non-null    float64
 18  Pengguna_Ponsel                         496 non-null    float64
dtypes: float64(7), int64(6), object(6)
memory usage: 76.3+ KB

Apakah ada Variabel yang memiliki Duplicate/Missing/Anomaly Values?

Untuk Nama Provinsi yang null harus dan juga Jumlah_Kelurahan_Desa di anotasi secara manual

In [4]:
# Data Awal Provinsi yg Null
df[df.Provinsi.isnull()]
Out[4]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
98 99 Kota Pematang Siantar NaN Area 1 Sumbagut 53/- 13933 54572 78.75 268254 55.66 569499118 12372.0 2501519 21.23 137927.0000 131927 174297.0 223081.0
167 168 Kab. Pandeglang NaN Area 2 Jabo Outer 13/326 28324 23371 65.00 1272687 2746.89 1125384369 8572.0 2758909 120.44 481092.0000 69118 584482.0 768914.0
175 176 Kota Cirebon NaN Area 2 Jabar 22/- 23457 73461 74.89 333303 37.36 548788411 11397.0 2.21949e+06 30.61 138667.0000 200741 217464.0 272425.0
235 236 Kab. Bantul NaN Area 3 Jateng -/75 26345 25869 80.01 985770 506.86 931996005 15517.0 1790500 138.66 579229.0000 625056 610016.0 735376.0
237 238 Kab. Blora NaN Area 3 Jateng 24/271 25977 30031 68.84 884333 1821.59 883338891 9795.0 1834000 103.73 468013.0000 395900 474448.0 196591.0
261 262 Kota Kediri NaN Area 3 Jatim 46/- 139253 484513 78.23 286796 63.40 582747476 11976.0 2060925 22.19 142122.0000 188988 222760.0 222760.0
332 333 Kab. Buton Selatan NaN Area 4 Sulawesi 70 2937 36356 64.93 95261 509.92 339720973 7263.0 1864454 11.50 30615.0000 26023 47800.0 NaN
338 339 Kab. Maybrat NaN Area 4 Malpua 1/259 737 18029 59.52 42991 5461.69 410834045 5336.0 3184225 12.80 22676.1725 7628 22726.0 26647.0
In [5]:
#setelah di anotasi secara manual data provinsi sudah tidak ada yg null
new_df = pd.read_excel('Tes Data Analytics Analyst_Rev1.xlsx',sheet_name='dataset') 
new_df[new_df.Provinsi.isnull()]
Out[5]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [6]:
# Terlihat masih ada data yg null di kolom Pemilik_Ponsel & Pengguna_Ponsel
new_df.isnull().sum()
Out[6]:
ID                                         0
Kota_Kabupaten                             0
Provinsi                                   0
Area                                       0
Regional                                   0
Jumlah_Kelurahan_Desa                      0
PDRB                                       0
PDRB_Per_Kapita                            0
Indeks_Pembangunan_Manusia                 0
Jumlah_Penduduk                            0
Luas_Wilayah                               0
Dana_Alokasi_Umum                          0
Pengeluaran_Riil_per_Kapita_ per_Tahun     0
Nilai_UMR                                  0
Jumlah_Penduduk_Miskin                     0
Jumlah_Penduduk_Bekerja                    0
Pengguna_Internet                          0
Pemilik_Ponsel                             6
Pengguna_Ponsel                           17
dtype: int64
In [7]:
#Kolom yg null tersebut saya isi dengan data rata2 dari masing2 kolom
new_df.Pemilik_Ponsel.fillna(new_df.Pemilik_Ponsel.mean(),inplace=True)
new_df.Pengguna_Ponsel.fillna(new_df.Pengguna_Ponsel.mean(),inplace=True)
new_df.isnull().sum()
Out[7]:
ID                                        0
Kota_Kabupaten                            0
Provinsi                                  0
Area                                      0
Regional                                  0
Jumlah_Kelurahan_Desa                     0
PDRB                                      0
PDRB_Per_Kapita                           0
Indeks_Pembangunan_Manusia                0
Jumlah_Penduduk                           0
Luas_Wilayah                              0
Dana_Alokasi_Umum                         0
Pengeluaran_Riil_per_Kapita_ per_Tahun    0
Nilai_UMR                                 0
Jumlah_Penduduk_Miskin                    0
Jumlah_Penduduk_Bekerja                   0
Pengguna_Internet                         0
Pemilik_Ponsel                            0
Pengguna_Ponsel                           0
dtype: int64
In [8]:
# Tidak ada duplicated data
new_df[new_df.duplicated()]
Out[8]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [ ]:
 
In [9]:
#di column Nilai_UMR ada data yg nilai datanya 'no data'
kolom = new_df.columns
new_df[new_df[kolom].values == 'no data']
Out[9]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
14 15 Kab. Nias Selatan Sumatera Utara Area 1 Sumbagut 3/457 6861 21449 61.89 360531 1825.20 628496268 6974.0 no data 53.88 165452.0 63645 123047.0 169852.0
20 21 Kab. Nias Barat Sumatera Utara Area 1 Sumbagut -/105 1817 20955 61.51 89994 473.73 333762307 5830.0 no data 22.33 27785.0 15817 31381.0 46847.0
58 59 Kab. Pakpak Bharat Sumatera Utara Area 1 Sumbagut -/52 1178 24077 67.59 52351 1218.30 324896653 8170.0 no data 4.59 29879.0 15355 23429.0 36435.0
311 312 Kab. Siau Tagulandang Biaro Sulawesi Utara Area 4 Sulawesi 10/83 2367 35642 67.64 71817 275.86 368894458 8080.0 no data 5.95 33638.0 24927 38466.0 56826.0
325 326 Kab. Banggai Kepulauan Sulawesi Tengah Area 4 Sulawesi 3/141 4037 34096 65.42 120142 2488.79 446343684 7545.0 no data 16.70 63278.0 33587 52586.0 69133.0
326 327 Kota Manado Sulawesi Utara Area 4 Sulawesi 87/- 37387 86217 78.93 451916 157.27 718105042 13886.0 no data 25.55 171155.0 284622 335246.0 356579.0
327 328 Kab. Minahasa Utara Sulawesi Utara Area 4 Sulawesi 6/126 13819 67864 73.90 224993 918.49 478884543 11405.0 no data 14.33 88401.0 110279 143931.0 167802.0
331 332 Kab. Bolaang Mongondow Timur Sulawesi Utara Area 4 Sulawesi -/81 2879 39761 65.99 88241 910.18 329834100 8998.0 no data 4.30 34770.0 35248 48490.0 57591.0
333 334 Kab. Bolaang Mongondow Sulawesi Utara Area 4 Sulawesi 2/200 8010 32325 67.89 248751 2871.65 520863307 10128.0 no data 18.07 111901.0 84566 124991.0 160575.0
335 336 Kota Kotamobagu Sulawesi Utara Area 4 Sulawesi 18/15 3695 28777 72.97 123722 68.06 361109537 10744.0 no data 7.06 61109.0 65503 78963.0 93459.0
337 338 Kab. Bolaang Mongondow Selatan Sulawesi Utara Area 4 Sulawesi -/81 2084 31540 65.00 69791 1615.86 333549036 8837.0 no data 8.53 28510.0 21005 31317.0 43023.0
340 341 Kab. Kepulauan Sangihe Sulawesi Utara Area 4 Sulawesi 22/145 4248 32388 70.73 139262 461.11 504778603 11427.0 no data 14.64 64335.0 47996 78483.0 101319.0
342 343 Kab. Minahasa Tenggara Sulawesi Utara Area 4 Sulawesi 9/135 5112 47821 70.51 116323 710.83 388590506 10408.0 no data 13.73 49627.0 49843 59928.0 78888.0
351 352 Kab. Minahasa Selatan Sulawesi Utara Area 4 Sulawesi 10/167 8601 40824 72.11 236463 1409.97 512617579 11481.0 no data 19.38 103336.0 104453 138919.0 177422.0
352 353 Kab. Bolaang Mongondow Utara Sulawesi Utara Area 4 Sulawesi 1/106 2488 30976 66.99 83112 1680.00 354425767 9062.0 no data 6.82 35832.0 29772 41192.0 53649.0
355 356 Kab. Minahasa Sulawesi Utara Area 4 Sulawesi 43/227 17120 50178 75.29 347290 1114.87 628991615 12395.0 no data 24.95 158771.0 183580 233812.0 279231.0
365 366 Kota Palu Sulawesi Tengah Area 4 Sulawesi 46/- 24816 63405 81.47 373218 395.06 650829309 15074.0 no data 26.89 202467.0 252690 265113.0 316987.0
376 377 Kota Tomohon Sulawesi Utara Area 4 Sulawesi 44/- 4291 40139 76.69 100587 114.20 402379553 11745.0 no data 6.06 46336.0 57713 67960.0 77939.0
378 379 Kab. Toli-Toli Sulawesi Tengah Area 4 Sulawesi 6/103 8545 36239 65.69 225154 4079.77 588276474 8017.0 no data 30.51 113898.0 85136 114334.0 154687.0
383 384 Kab. Banggai Laut Sulawesi Tengah Area 4 Sulawesi 3/63 2437 32493 65.43 70435 725.67 390476710 7810.0 no data 11.09 36528.0 18946 31913.0 36216.0
399 400 Kab. Kepulauan Talaud Sulawesi Utara Area 4 Sulawesi 11/142 2210 23902 69.40 94521 1240.40 466829170 8505.0 no data 8.84 55459.0 28141 47985.0 66608.0
404 405 Kota Bitung Sulawesi Utara Area 4 Sulawesi 69/- 16309 74470 74.10 225134 302.89 475308720 12193.0 no data 14.18 91622.0 123307 154154.0 174037.0
413 414 Kab. Poso Sulawesi Tengah Area 4 Sulawesi 28/141 9506 37075 71.28 244875 7112.25 685769750 8936.0 no data 40.20 147614.0 98784 142206.0 190665.0
426 427 Kab. Tojo Una-Una Sulawesi Tengah Area 4 Sulawesi 12/134 5713 37099 64.59 163829 5721.15 552080735 7608.0 no data 25.43 83898.0 45935 73269.0 97295.0
428 429 Kab. Sigi Sulawesi Tengah Area 4 Sulawesi -/176 8987 37537 68.12 257585 5196.02 589752115 8236.0 no data 30.00 123819.0 82130 119021.0 161306.0
434 435 Kab. Donggala Sulawesi Tengah Area 4 Sulawesi 9/158 12261 40317 65.56 300436 4275.08 627024200 8106.0 no data 53.17 138929.0 94344 139603.0 191854.0
In [10]:
# Dibeberapa kolom seperti Dana_Alokasi_Umum, Nilai_UMR, Jumlah_Penduduk_Bekerja ada yg nilainya 0 ini perlu di isi rata2nya
new_df[new_df[kolom].values == 0]
Out[10]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
0 1 Kota Sungai Penuh Jambi Area 1 Sumbagsel 4/65 7488 82367 75.42 96610 391.50 414326985 10248.00 0 2.78 4.180600e+04 46893 5.940700e+04 72385.0
3 4 Kab. Kepahiang Bengkulu Area 1 Sumbagsel 12/105 4321 31498 68.17 149737 665.00 403631660 9273.00 0 20.27 0.000000e+00 54865 8.098100e+04 96905.0
3 4 Kab. Kepahiang Bengkulu Area 1 Sumbagsel 12/105 4321 31498 68.17 149737 665.00 403631660 9273.00 0 20.27 0.000000e+00 54865 8.098100e+04 96905.0
4 5 Kab. Kerinci Jambi Area 1 Sumbagsel 2/285 10123 42413 71.21 250259 3355.27 570389068 9995.00 0 17.48 1.180800e+05 28639 1.607140e+05 187258.0
7 8 Kab. Rejang Lebong Bengkulu Area 1 Sumbagsel 34/122 9370 35914 70.44 276645 1639.98 566437095 10234.00 0 41.47 0.000000e+00 105399 1.463400e+05 192097.0
7 8 Kab. Rejang Lebong Bengkulu Area 1 Sumbagsel 34/122 9370 35914 70.44 276645 1639.98 566437095 10234.00 0 41.47 0.000000e+00 105399 1.463400e+05 192097.0
17 18 Kab. Seluma Bengkulu Area 1 Sumbagsel 20/182 4603 23752 66.89 207877 2400.44 477383614 8220.00 0 36.23 0.000000e+00 66410 1.007580e+05 135296.0
17 18 Kab. Seluma Bengkulu Area 1 Sumbagsel 20/182 4603 23752 66.89 207877 2400.44 477383614 8220.00 0 36.23 0.000000e+00 66410 1.007580e+05 135296.0
21 22 Kota Jambi Jambi Area 1 Sumbagsel 62/- 30856 51024 78.37 606200 103.54 690724772 12056.00 0 50.44 2.863870e+05 130319 4.805750e+05 480575.0
24 25 Kab. Kaur Bengkulu Area 1 Sumbagsel 3/192 3524 29075 66.99 126551 2369.05 415365742 8593.00 0 22.57 0.000000e+00 37221 6.103500e+04 74000.0
24 25 Kab. Kaur Bengkulu Area 1 Sumbagsel 3/192 3524 29075 66.99 126551 2369.05 415365742 8593.00 0 22.57 0.000000e+00 37221 6.103500e+04 74000.0
28 29 Kab. Tanjung Jabung Barat Jambi Area 1 Sumbagsel 20/114 43303 129676 67.54 317498 4649.85 490342499 9480.00 0 34.79 1.661790e+05 21910 1.737730e+05 220457.0
29 30 Kab. Merangin Jambi Area 1 Sumbagsel 10/205 15377 39538 69.19 354052 7679.00 669437069 10279.00 0 33.92 1.875230e+05 27518 1.859290e+05 218049.0
33 34 Kab. Bengkulu Selatan Bengkulu Area 1 Sumbagsel 16/142 5701 35992 70.63 166249 1186.10 525650342 9837.00 0 28.41 0.000000e+00 57714 9.238900e+04 130128.0
33 34 Kab. Bengkulu Selatan Bengkulu Area 1 Sumbagsel 16/142 5701 35992 70.63 166249 1186.10 525650342 9837.00 0 28.41 0.000000e+00 57714 9.238900e+04 130128.0
42 43 Kab. Tanjung Jabung Timur Jambi Area 1 Sumbagsel 20/73 24696 112263 64.43 229813 5445.00 523900364 9026.00 0 24.23 1.137730e+05 13151 1.282220e+05 158385.0
46 47 Kab. Lebong Bengkulu Area 1 Sumbagsel 11/93 3346 28698 67.01 106293 1921.82 377859122 11124.00 0 13.97 0.000000e+00 35763 4.917400e+04 64761.0
46 47 Kab. Lebong Bengkulu Area 1 Sumbagsel 11/93 3346 28698 67.01 106293 1921.82 377859122 11124.00 0 13.97 0.000000e+00 35763 4.917400e+04 64761.0
49 50 Kota Bengkulu Bengkulu Area 1 Sumbagsel 67/- 23201 60241 80.36 373591 151.70 649681045 13938.00 0 69.12 0.000000e+00 246784 2.579420e+05 320307.0
49 50 Kota Bengkulu Bengkulu Area 1 Sumbagsel 67/- 23201 60241 80.36 373591 151.70 649681045 13938.00 0 69.12 0.000000e+00 246784 2.579420e+05 320307.0
54 55 Kab. Bengkulu Utara Bengkulu Area 1 Sumbagsel 5/215 8253 26622 68.82 296523 4324.60 590458935 10263.00 0 36.67 0.000000e+00 104019 1.475260e+05 197894.0
54 55 Kab. Bengkulu Utara Bengkulu Area 1 Sumbagsel 5/215 8253 26622 68.82 296523 4324.60 590458935 10263.00 0 36.67 0.000000e+00 104019 1.475260e+05 197894.0
56 57 Kab. Bengkulu Tengah Bengkulu Area 1 Sumbagsel 1/142 4607 40164 67.61 116706 1223.94 409476286 9392.00 0 10.79 0.000000e+00 43787 5.909300e+04 81051.0
56 57 Kab. Bengkulu Tengah Bengkulu Area 1 Sumbagsel 1/142 4607 40164 67.61 116706 1223.94 409476286 9392.00 0 10.79 0.000000e+00 43787 5.909300e+04 81051.0
59 60 Kab. Tebo Jambi Area 1 Sumbagsel 5/107 14621 41245 69.14 337669 6461.00 536524337 10389.00 0 22.47 1.763550e+05 134940 2.463430e+05 246343.0
62 63 Kab. Mukomuko Bengkulu Area 1 Sumbagsel 3/148 5160 26613 68.45 190498 4036.70 460324684 10266.00 0 23.10 0.000000e+00 73493 1.326340e+05 132634.0
62 63 Kab. Mukomuko Bengkulu Area 1 Sumbagsel 3/148 5160 26613 68.45 190498 4036.70 460324684 10266.00 0 23.10 0.000000e+00 73493 1.326340e+05 132634.0
82 83 Kab. Batanghari Jambi Area 1 Sumbagsel 14/110 16466 60340 69.84 301700 5804.00 571897802 9825.00 0 26.54 1.149830e+05 122832 2.099270e+05 209927.0
94 95 Kab. Muaro Jambi Jambi Area 1 Sumbagsel 5/150 24403 55041 69.18 402017 5326.00 631350550 8556.00 0 17.30 1.844650e+05 165790 2.794860e+05 279486.0
99 100 Kab. Bungo Jambi Area 1 Sumbagsel 12/141 18047 48156 69.92 362363 4659.00 602613586 11471.00 0 22.07 1.670750e+05 141959 2.557810e+05 255781.0
104 105 Kab. Sarolangun Jambi Area 1 Sumbagsel 9/149 15356 50865 69.86 290047 6184.00 539027521 11616.00 0 25.79 1.351560e+05 108246 2.076150e+05 207615.0
107 108 Kab. Belitung Bangka Belitung Area 1 Sumbagsel 7/42 9870 51994 72.51 182079 2293.61 463002382 13554.00 0 12.07 8.220000e+04 96279 1.257700e+05 144562.0
109 110 Kota Pangkal Pinang Bangka Belitung Area 1 Sumbagsel 42/- 13703 64417 78.22 218569 89.40 434574143 15663.00 0 9.40 8.457500e+04 150108 1.501080e+05 181433.0
136 137 Kab. Belitung Timur Bangka Belitung Area 1 Sumbagsel -/39 7728 59644 70.92 127018 2506.91 423426747 11730.00 0 8.56 5.825900e+04 63528 7.507500e+04 95788.0
137 138 Kab. Bangka Bangka Belitung Area 1 Sumbagsel 19/62 13794 40891 72.40 326265 2950.68 500682611 12416.00 0 15.41 1.321280e+05 153273 1.987930e+05 247399.0
139 140 Kab. Bangka Selatan Bangka Belitung Area 1 Sumbagsel 3/50 8676 41321 66.90 198189 3607.08 442497090 11757.00 0 7.49 8.874000e+04 79133 1.096420e+05 141819.0
142 143 Kab. Bangka Barat Bangka Belitung Area 1 Sumbagsel 4/60 14168 66466 69.08 204612 2820.61 427997278 12233.00 0 5.83 8.421900e+04 80592 1.147680e+05 140989.0
144 145 Kab. Bangka Tengah Bangka Belitung Area 1 Sumbagsel 7/56 8579 43728 70.45 198946 2155.77 426219372 12909.00 0 9.64 7.410200e+04 86518 1.131730e+05 153919.0
156 157 Kota Jakarta Pusat DKI Jakarta Area 2 Jabo Inner 44/- 705614 760271 81.39 1056896 48.13 0 2009108.88 4267349 41.92 4.095890e+05 744900 7.674280e+05 856753.0
160 161 Kota Jakarta Selatan DKI Jakarta Area 2 Jabo Inner 65/- 648231 286233 84.72 2226812 141.27 0 2625288.26 4267349 78.09 1.011605e+06 578643 1.669822e+06 1839014.0
166 167 Kota Jakarta Timur DKI Jakarta Area 2 Jabo Inner 65/- 492191 167534 82.66 3037139 188.03 0 1958914.61 4267349 122.73 1.257752e+06 684548 2.137043e+06 2444334.0
168 169 Kota Jakarta Barat DKI Jakarta Area 2 Jabo Inner 56/- 473843 182956 81.38 2434511 129.54 0 2144621.63 4267349 110.90 1.148244e+06 484357 1.715385e+06 1938554.0
171 172 Kota Cimahi Jawa Barat Area 2 Jabar 15/- 32226 52459 77.83 568400 39.27 542550698 11921.00 0 31.64 2.725530e+05 390392 3.950770e+05 449614.0
176 177 Kota Jakarta Utara DKI Jakarta Area 2 Jabo Inner 31/- 525173 289684 80.29 1778981 146.66 0 1995226.70 4267349 123.59 8.220760e+05 1210851 1.211341e+06 1378947.0
192 193 Kab. Kepulauan Seribu DKI Jakarta Area 2 Jabo Inner 6/- 7969 327998 71.63 27749 8.70 0 1122234.55 4267349 3.63 9.985000e+03 14095 1.478800e+04 17697.0
207 208 Kota Malang Jawa Timur Area 3 Jatim 57/- 72773 83581 81.45 843810 145.28 810812876 16158.00 0 38.77 4.377370e+05 607673 6.661770e+05 666177.0
212 213 Kab. Brebes Jawa Tengah Area 3 Jateng 5/292 46215 25546 66.11 1978759 1902.37 1261293035 10238.00 0 308.78 8.210610e+05 875802 1.377380e+06 1377380.0
236 237 Kab. Demak Jawa Tengah Area 3 Jateng 6/243 26184 22518 72.22 1203956 900.12 875987653 10344.00 0 146.87 5.746020e+05 577369 7.837620e+05 783762.0
266 267 Kota Salatiga Jawa Tengah Area 3 Jateng 23/- 13316 68609 83.14 192322 57.36 427568712 15944.00 0 9.69 1.020530e+05 136573 1.559020e+05 155902.0
364 365 Kab. Pangkajene dan Kepulauan Sulawesi Selatan Area 4 Sulawesi 38/65 25990 77464 68.72 345775 1236.27 715539546 11405.00 0 47.12 1.391730e+05 142786 1.964410e+05 266664.0
380 381 Kab. Majene Sulawesi Barat Area 4 Sulawesi 20/62 4973 28601 66.91 174407 947.84 496316515 10056.00 0 24.12 7.980220e+04 59473 3.051188e+05 124222.0
391 392 Kab. Seram Bagian Barat Maluku Area 4 Malpua 0/92 3002 17497 65.62 209856 5033.38 567548852 8690.00 0 43.15 8.459500e+04 49945 9.029700e+04 116492.0
393 394 Kab. Melawi Kalimantan Barat Area 4 Kalimantan 0/169 5187 24885 65.55 228270 10640.80 559720948 8332.00 0 25.34 4.593900e+04 54682 8.902400e+04 108164.0
405 406 Kab. Hulu Sungai Utara Kalimantan Selatan Area 4 Kalimantan 5/214 4954 20854 65.59 226727 892.70 457931491 9527.00 0 14.72 1.132050e+05 92481 1.644890e+05 164118.0
411 412 Kab. Manokwari Papua Barat Area 4 Malpua 9/164 10078 57532 72.01 192663 3186.28 501716434 12207.00 0 35.92 8.522522e+04 102397 1.255560e+05 144052.0
456 457 Kab. Paser Kalimantan Timur Area 4 Kalimantan 5/139 48176 168509 72.04 275452 7730.88 384896323 10344.00 0 26.77 1.377370e+05 137228 9.449200e+04 137203.0
498 499 Kota Kupang Nusa Tenggara Timur Area 5 Balnus 51/- 24559 56462 79.71 442758 180.27 623856772 13337.00 0 39.72 3.476410e+05 287506 2.964220e+05 368629.0
In [11]:
# merubah 'no data' menjadi 0 kemudian type datanya jadi int
new_df.Nilai_UMR.replace('no data','0',inplace=True)
new_df['Nilai_UMR'] = new_df.Nilai_UMR.astype(int)
#Merubah data2 dengan nilai yg bernilai anomali dengan nilai rata2nya
new_df.Nilai_UMR.replace(0,int(new_df.Nilai_UMR.mean()),inplace=True)
new_df[new_df.Nilai_UMR.values == 0]
Out[11]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [12]:
new_df[new_df.Dana_Alokasi_Umum.values == 0]
Out[12]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
156 157 Kota Jakarta Pusat DKI Jakarta Area 2 Jabo Inner 44/- 705614 760271 81.39 1056896 48.13 0 2009108.88 4267349 41.92 409589.0 744900 767428.0 856753.0
160 161 Kota Jakarta Selatan DKI Jakarta Area 2 Jabo Inner 65/- 648231 286233 84.72 2226812 141.27 0 2625288.26 4267349 78.09 1011605.0 578643 1669822.0 1839014.0
166 167 Kota Jakarta Timur DKI Jakarta Area 2 Jabo Inner 65/- 492191 167534 82.66 3037139 188.03 0 1958914.61 4267349 122.73 1257752.0 684548 2137043.0 2444334.0
168 169 Kota Jakarta Barat DKI Jakarta Area 2 Jabo Inner 56/- 473843 182956 81.38 2434511 129.54 0 2144621.63 4267349 110.90 1148244.0 484357 1715385.0 1938554.0
176 177 Kota Jakarta Utara DKI Jakarta Area 2 Jabo Inner 31/- 525173 289684 80.29 1778981 146.66 0 1995226.70 4267349 123.59 822076.0 1210851 1211341.0 1378947.0
192 193 Kab. Kepulauan Seribu DKI Jakarta Area 2 Jabo Inner 6/- 7969 327998 71.63 27749 8.70 0 1122234.55 4267349 3.63 9985.0 14095 14788.0 17697.0
In [13]:
#Merubah nilai 0 menjadi rata2 dari Dana_Alokasi_Umum
new_df.Dana_Alokasi_Umum.replace(0,int(new_df.Dana_Alokasi_Umum.mean()),inplace=True)
new_df[new_df.Dana_Alokasi_Umum.values == 0]
Out[13]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [ ]:
 
In [14]:
new_df[new_df.Jumlah_Penduduk_Bekerja == 0]
Out[14]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
3 4 Kab. Kepahiang Bengkulu Area 1 Sumbagsel 12/105 4321 31498 68.17 149737 665.00 403631660 9273.0 2490882 20.27 0.0 54865 80981.0 96905.0
7 8 Kab. Rejang Lebong Bengkulu Area 1 Sumbagsel 34/122 9370 35914 70.44 276645 1639.98 566437095 10234.0 2490882 41.47 0.0 105399 146340.0 192097.0
17 18 Kab. Seluma Bengkulu Area 1 Sumbagsel 20/182 4603 23752 66.89 207877 2400.44 477383614 8220.0 2490882 36.23 0.0 66410 100758.0 135296.0
24 25 Kab. Kaur Bengkulu Area 1 Sumbagsel 3/192 3524 29075 66.99 126551 2369.05 415365742 8593.0 2490882 22.57 0.0 37221 61035.0 74000.0
33 34 Kab. Bengkulu Selatan Bengkulu Area 1 Sumbagsel 16/142 5701 35992 70.63 166249 1186.10 525650342 9837.0 2490882 28.41 0.0 57714 92389.0 130128.0
46 47 Kab. Lebong Bengkulu Area 1 Sumbagsel 11/93 3346 28698 67.01 106293 1921.82 377859122 11124.0 2490882 13.97 0.0 35763 49174.0 64761.0
49 50 Kota Bengkulu Bengkulu Area 1 Sumbagsel 67/- 23201 60241 80.36 373591 151.70 649681045 13938.0 2490882 69.12 0.0 246784 257942.0 320307.0
54 55 Kab. Bengkulu Utara Bengkulu Area 1 Sumbagsel 5/215 8253 26622 68.82 296523 4324.60 590458935 10263.0 2490882 36.67 0.0 104019 147526.0 197894.0
56 57 Kab. Bengkulu Tengah Bengkulu Area 1 Sumbagsel 1/142 4607 40164 67.61 116706 1223.94 409476286 9392.0 2490882 10.79 0.0 43787 59093.0 81051.0
62 63 Kab. Mukomuko Bengkulu Area 1 Sumbagsel 3/148 5160 26613 68.45 190498 4036.70 460324684 10266.0 2490882 23.10 0.0 73493 132634.0 132634.0
In [15]:
#Merubah nilai 0 menjadi rata2 dari Jumlah_Penduduk_Bekerja
new_df['Jumlah_Penduduk_Bekerja'] = new_df.Jumlah_Penduduk_Bekerja.astype(int)
new_df.Jumlah_Penduduk_Bekerja.replace(0,int(new_df.Jumlah_Penduduk_Bekerja.mean()),inplace=True)
new_df[new_df.Jumlah_Penduduk_Bekerja == 0]
Out[15]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [ ]:
 
In [16]:
#Memastikan lagi bahwa sudah tidak ada data yg bernilai 0
new_df[new_df[kolom].values == 0]
Out[16]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel
In [ ]:
 

Berapa jumlah Total Kelurahan dan Desa dalam suatu Kota/Kabupaten?

In [17]:
#Mensplit data keluran dan desa dari kolom Jumlah_Kelurahan_Desa
new_df['Jumlah_Kelurahan'] = new_df.Jumlah_Kelurahan_Desa.str.split('/',expand=True)[0]
new_df['Jumlah_Desa'] = new_df.Jumlah_Kelurahan_Desa.str.split('/',expand=True)[1]

Jumlah Kelurahan

In [18]:
new_df.Jumlah_Kelurahan.replace('-',0,inplace=True)
new_df.Jumlah_Kelurahan = new_df.Jumlah_Kelurahan.astype(int)
new_df.Jumlah_Kelurahan.sum()
Out[18]:
8492

Jumlah Desa

In [19]:
new_df.Jumlah_Desa.replace('-',0,inplace=True)
new_df.Jumlah_Desa = new_df.Jumlah_Desa.astype(int)
new_df.Jumlah_Desa.sum()
Out[19]:
75215
In [ ]:
 
In [20]:
new_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 513 entries, 0 to 512
Data columns (total 21 columns):
 #   Column                                  Non-Null Count  Dtype  
---  ------                                  --------------  -----  
 0   ID                                      513 non-null    int64  
 1   Kota_Kabupaten                          513 non-null    object 
 2   Provinsi                                513 non-null    object 
 3   Area                                    513 non-null    object 
 4   Regional                                513 non-null    object 
 5   Jumlah_Kelurahan_Desa                   513 non-null    object 
 6   PDRB                                    513 non-null    int64  
 7   PDRB_Per_Kapita                         513 non-null    int64  
 8   Indeks_Pembangunan_Manusia              513 non-null    float64
 9   Jumlah_Penduduk                         513 non-null    int64  
 10  Luas_Wilayah                            513 non-null    float64
 11  Dana_Alokasi_Umum                       513 non-null    int64  
 12  Pengeluaran_Riil_per_Kapita_ per_Tahun  513 non-null    float64
 13  Nilai_UMR                               513 non-null    int32  
 14  Jumlah_Penduduk_Miskin                  513 non-null    float64
 15  Jumlah_Penduduk_Bekerja                 513 non-null    int32  
 16  Pengguna_Internet                       513 non-null    int64  
 17  Pemilik_Ponsel                          513 non-null    float64
 18  Pengguna_Ponsel                         513 non-null    float64
 19  Jumlah_Kelurahan                        513 non-null    int32  
 20  Jumlah_Desa                             513 non-null    int32  
dtypes: float64(6), int32(4), int64(6), object(5)
memory usage: 76.3+ KB
In [21]:
# Merubah type data float menjadi integer kecuali kolom Indeks_Pembangunan_Manusia
new_df[['Luas_Wilayah','Pengeluaran_Riil_per_Kapita_ per_Tahun','Jumlah_Penduduk_Miskin','Pemilik_Ponsel','Pengguna_Ponsel']] = \
new_df[['Luas_Wilayah','Pengeluaran_Riil_per_Kapita_ per_Tahun','Jumlah_Penduduk_Miskin','Pemilik_Ponsel','Pengguna_Ponsel']].astype(int)
In [22]:
new_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 513 entries, 0 to 512
Data columns (total 21 columns):
 #   Column                                  Non-Null Count  Dtype  
---  ------                                  --------------  -----  
 0   ID                                      513 non-null    int64  
 1   Kota_Kabupaten                          513 non-null    object 
 2   Provinsi                                513 non-null    object 
 3   Area                                    513 non-null    object 
 4   Regional                                513 non-null    object 
 5   Jumlah_Kelurahan_Desa                   513 non-null    object 
 6   PDRB                                    513 non-null    int64  
 7   PDRB_Per_Kapita                         513 non-null    int64  
 8   Indeks_Pembangunan_Manusia              513 non-null    float64
 9   Jumlah_Penduduk                         513 non-null    int64  
 10  Luas_Wilayah                            513 non-null    int32  
 11  Dana_Alokasi_Umum                       513 non-null    int64  
 12  Pengeluaran_Riil_per_Kapita_ per_Tahun  513 non-null    int32  
 13  Nilai_UMR                               513 non-null    int32  
 14  Jumlah_Penduduk_Miskin                  513 non-null    int32  
 15  Jumlah_Penduduk_Bekerja                 513 non-null    int32  
 16  Pengguna_Internet                       513 non-null    int64  
 17  Pemilik_Ponsel                          513 non-null    int32  
 18  Pengguna_Ponsel                         513 non-null    int32  
 19  Jumlah_Kelurahan                        513 non-null    int32  
 20  Jumlah_Desa                             513 non-null    int32  
dtypes: float64(1), int32(9), int64(6), object(5)
memory usage: 66.3+ KB

Men save data yg sudah bersih ke file baru

In [25]:
#Mendrop kolom Jumlah_Kelurahan_Desa
new_df = new_df.drop(columns=['Jumlah_Kelurahan_Desa'])
In [26]:
new_df.to_excel('Data_Bersih.xlsx',index=False)

Regional mana yang memiliki PDRB tertinggi? Provinsi apa yang memiliki PDRB tertinggi pada setiap Regional?

In [23]:
new_df.sort_values(by='PDRB',ascending=False).head(1)
Out[23]:
ID Kota_Kabupaten Provinsi Area Regional Jumlah_Kelurahan_Desa PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk ... Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel Jumlah_Kelurahan Jumlah_Desa
156 157 Kota Jakarta Pusat DKI Jakarta Area 2 Jabo Inner 44/- 705614 760271 81.39 1056896 ... 643787887 2009108 4267349 41 409589 744900 767428 856753 44 0

1 rows × 21 columns

In [28]:
new_df.sort_values(by='PDRB_Per_Kapita',ascending=False).head(1)
Out[28]:
ID Kota_Kabupaten Provinsi Area Regional PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel Jumlah_Kelurahan Jumlah_Desa
156 157 Kota Jakarta Pusat DKI Jakarta Area 2 Jabo Inner 705614 760271 81.39 1056896 48 643787887 2009108 4267349 41 409589 744900 767428 856753 44 0

Bisa dengan cara berikut untuk mencari nilai tertinggi

In [62]:
new_df.groupby(['Regional','Provinsi',])['PDRB'].sum().sort_values(ascending=False)
Out[62]:
Regional    Provinsi           
Jabo Inner  DKI Jakarta            2853021
Jatim       Jawa Timur             2374628
Jabar       Jawa Barat             2146593
Jateng      Jawa Tengah            1361301
Sumbagut    Sumatera Utara          793275
Sumbagteng  Riau                    769433
Jabo Outer  Banten                  669366
Kalimantan  Kalimantan Timur        653800
Sulawesi    Sulawesi Selatan        505578
Sumbagsel   Sumatera Selatan        458731
Lampung     Lampung                 364248
Sumbagteng  Kepulauan Riau          262984
Balnus      Bali                    253835
Sumbagteng  Sumatera Barat          246397
Sumbagsel   Jambi                   220736
Kalimantan  Kalimantan Barat        214075
Malpua      Papua                   190786
Kalimantan  Kalimantan Selatan      182365
Sulawesi    Sulawesi Tengah         167523
Sumbagut    Aceh                    165262
Kalimantan  Kalimantan Tengah       150538
Jateng      Yogyakarta              141432
Balnus      Nusa Tenggara Barat     133486
Sulawesi    Sulawesi Utara          130620
            Sulawesi Tenggara       129825
Balnus      Nusa Tenggara Timur     108103
Kalimantan  Kalimantan Utara         96407
Malpua      Papua Barat              84954
Sumbagsel   Bangka Belitung          76518
            Bengkulu                 72086
Malpua      Maluku                   46737
Sulawesi    Sulawesi Barat           46417
            Gorontalo                41328
Malpua      Maluku Utara             40181
Sumbagut    Sumatra Utara            13933
Name: PDRB, dtype: int64
In [63]:
new_df.groupby(['Regional','Provinsi',])['PDRB_Per_Kapita'].sum().sort_values(ascending=False)
Out[63]:
Regional    Provinsi           
Jatim       Jawa Timur             2278860
Jabo Inner  DKI Jakarta            2014676
Kalimantan  Kalimantan Timur       1817625
Jateng      Jawa Tengah            1433973
Sumbagut    Sumatera Utara         1418644
Malpua      Papua                  1364773
Sumbagteng  Riau                   1356967
Sulawesi    Sulawesi Selatan       1162517
Sumbagteng  Kepulauan Riau         1146428
Jabar       Jawa Barat             1114778
Malpua      Papua Barat            1071420
Sumbagteng  Sumatera Barat          887673
Kalimantan  Kalimantan Tengah       788895
Sulawesi    Sulawesi Tenggara       784653
            Sulawesi Tengah         765938
Sumbagsel   Sumatera Selatan        740989
            Jambi                   712928
Sumbagut    Aceh                    709204
Kalimantan  Kalimantan Utara        701377
Sulawesi    Sulawesi Utara          662824
Lampung     Lampung                 598183
Kalimantan  Kalimantan Selatan      579888
            Kalimantan Barat        551076
Jabo Outer  Banten                  544255
Balnus      Bali                    489327
            Nusa Tenggara Timur     406485
Sumbagsel   Bangka Belitung         368461
Balnus      Nusa Tenggara Barat     347799
Sumbagsel   Bengkulu                338569
Malpua      Maluku Utara            308472
            Maluku                  283484
Sulawesi    Gorontalo               203722
Jateng      Yogyakarta              202978
Sulawesi    Sulawesi Barat          199249
Sumbagut    Sumatra Utara            54572
Name: PDRB_Per_Kapita, dtype: int64

Area mana yang memiliki Jumlah Pengguna Ponsel terbanyak? Apa alasannya menurut Anda?

Area 3 karena Jumlah_Penduduk,Jumlah_Penduduk_Bekerja tinggi dan juga Pengeluaran_Riil_perKapita per_Tahun kecil

In [29]:
new_df.groupby(['Area',])['Pengguna_Ponsel'].sum().sort_values(ascending=False)
Out[29]:
Area
Area 3    54661796
Area 2    50184038
Area 1    42391449
Area 4    37554871
Area 5    10800138
Name: Pengguna_Ponsel, dtype: int32
In [49]:
new_df.groupby(['Area',])['Jumlah_Penduduk'].sum().sort_values(ascending=False)
Out[49]:
Area
Area 3    80850450
Area 2    70740812
Area 1    58557211
Area 4    44936926
Area 5    14963062
Name: Jumlah_Penduduk, dtype: int64
In [51]:
new_df.groupby(['Area',])['Jumlah_Penduduk_Bekerja'].sum().sort_values(ascending=False)
Out[51]:
Area
Area 3    40773467
Area 2    32114381
Area 1    29058091
Area 4    19439478
Area 5     8894828
Name: Jumlah_Penduduk_Bekerja, dtype: int32

Bagaimana perbandingan distribusi data Pengeluaran Riil/kapita/tahun pada setiap Area?

In [66]:
import plotly.express as px
In [33]:
fig = px.scatter(data_frame=new_df,x='Kota_Kabupaten',y='Pengeluaran_Riil_per_Kapita_ per_Tahun',
             color='Area',width=1200,hover_data=['Kota_Kabupaten','Pengeluaran_Riil_per_Kapita_ per_Tahun','Provinsi'])

fig.show()

Melihat grafik persebaran data Pengeluaran_Riil_perKapita per_Tahun selain DKI

In [34]:
df_except_jakarta = new_df[new_df.Provinsi.str.contains('DKI Jakarta') == False]
fig = px.bar(data_frame=df_except_jakarta,x='Provinsi',y='Pengeluaran_Riil_per_Kapita_ per_Tahun',
             color='Area',width=1200,hover_data=['Kota_Kabupaten','Pengeluaran_Riil_per_Kapita_ per_Tahun','Provinsi'])

fig.show()
In [35]:
fig = px.box(data_frame=df_except_jakarta,x='Provinsi',y='Pengeluaran_Riil_per_Kapita_ per_Tahun',
             color='Area',width=1200,hover_data=['Kota_Kabupaten','Pengeluaran_Riil_per_Kapita_ per_Tahun','Provinsi'])

fig.show()

Dari grafik di atas terlihat jika persebaran data Pengeluaran_Riil_perKapita per_Tahun tidak merata antar kabupaten khususnya Provinsi DKI Jakarta

In [ ]:
 

Area apa yang jumlah Outliers pada Indeks Pembangunan Manusianya paling banyak, dan Kota/Kabupaten mana saja yang menjadi Outliers pada tiap Area? Apa alasannya menurut Anda?

In [37]:
fig = px.box(data_frame=new_df,x='Provinsi',y='Indeks_Pembangunan_Manusia',
             color='Area',width=1200,hover_data=['Kota_Kabupaten','Provinsi'])

fig.show()

Dari Boxplot di atas jawabannya Provinsi Jambi & Sulawesi Selatan

In [78]:
fig = px.bar(data_frame=new_df.sort_values(by='PDRB',ascending=False),x='Kota_Kabupaten',y='PDRB',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','PDRB','Provinsi'],)

fig.show()
In [77]:
fig = px.bar(data_frame=new_df.sort_values(by='PDRB_Per_Kapita',ascending=False),x='Kota_Kabupaten',y='PDRB_Per_Kapita',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','PDRB_Per_Kapita','Provinsi'],)

fig.show()
In [76]:
fig = px.bar(data_frame=new_df.sort_values(by='Jumlah_Penduduk_Bekerja',ascending=False),x='Kota_Kabupaten',y='Jumlah_Penduduk_Bekerja',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','Jumlah_Penduduk_Bekerja','Provinsi'],)

fig.show()
In [75]:
fig = px.bar(data_frame=new_df.sort_values(by='Jumlah_Penduduk_Miskin',ascending=False),x='Kota_Kabupaten',y='Jumlah_Penduduk_Miskin',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','Jumlah_Penduduk_Miskin','Provinsi'],)

fig.show()
In [74]:
fig = px.bar(data_frame=new_df.sort_values(by='Pengguna_Internet',ascending=False),x='Kota_Kabupaten',y='Pengguna_Internet',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','Provinsi'],)

fig.show()
In [73]:
fig = px.bar(data_frame=new_df.sort_values(by='Pengguna_Ponsel',ascending=False),x='Kota_Kabupaten',y='Pengguna_Ponsel',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','Provinsi'],)

fig.show()
In [72]:
fig = px.bar(data_frame=new_df.sort_values(by='Pemilik_Ponsel',ascending=False),x='Kota_Kabupaten',y='Pemilik_Ponsel',
             color='Provinsi',width=2000,hover_data=['Kota_Kabupaten','Provinsi','Indeks_Pembangunan_Manusia'],)

fig.show()
In [46]:
px.scatter_matrix(data_frame=new_df,height=3000,width=4000,color='Indeks_Pembangunan_Manusia')
In [47]:
#Untuk Jambi kabupaten Jabung timur kenapa index pembangunan manusianya rendah karena berhubungan dengan jumlah pengguna internet
#untuk
In [77]:
# px.sunburst(data_frame=new_df,color='Indeks_Pembangunan_Manusia',names='Provinsi',values='Jumlah_Penduduk')

Regional mana yang memiliki UMR dengan mean dan median tertinggi? Adakah kaitan UMR dengan Jumlah Penduduk Miskin dan Penduduk Bekerja?

In [49]:
UMR_Mean = new_df.groupby(['Regional','Kota_Kabupaten'])['Nilai_UMR'].mean().sort_values(ascending=False).reset_index()
UMR_Mean
Out[49]:
Regional Kota_Kabupaten Nilai_UMR
0 Jabar Kab. Karawang 4594324
1 Jabar Kota Bekasi 4589708
2 Jabar Kab. Bekasi 4498961
3 Jabo Inner Kota Jakarta Pusat 4267349
4 Jabo Inner Kab. Kepulauan Seribu 4267349
... ... ... ...
508 Sulawesi Kab. Kolaka Utara 1323610
509 Sulawesi Kab. Buton Utara 1300328
510 Sulawesi Kab. Muna Barat 1161283
511 Sulawesi Kab. Muna 1102807
512 Sulawesi Kab. Buton Tengah 942427

513 rows × 3 columns

In [50]:
px.bar(UMR_Mean,x='Kota_Kabupaten',y='Nilai_UMR',color='Regional')
In [51]:
UMR_Med = new_df.groupby(['Regional','Kota_Kabupaten'])['Nilai_UMR'].median().sort_values(ascending=False).reset_index()
UMR_Med
Out[51]:
Regional Kota_Kabupaten Nilai_UMR
0 Jabar Kab. Karawang 4594324
1 Jabar Kota Bekasi 4589708
2 Jabar Kab. Bekasi 4498961
3 Jabo Inner Kota Jakarta Pusat 4267349
4 Jabo Inner Kab. Kepulauan Seribu 4267349
... ... ... ...
508 Sulawesi Kab. Kolaka Utara 1323610
509 Sulawesi Kab. Buton Utara 1300328
510 Sulawesi Kab. Muna Barat 1161283
511 Sulawesi Kab. Muna 1102807
512 Sulawesi Kab. Buton Tengah 942427

513 rows × 3 columns

In [52]:
px.bar(UMR_Med,x='Kota_Kabupaten',y='Nilai_UMR',color='Regional')
In [53]:
px.scatter(data_frame=new_df[['Kota_Kabupaten','Nilai_UMR','Jumlah_Penduduk_Miskin','Jumlah_Penduduk_Bekerja','Regional']],x='Nilai_UMR',y='Jumlah_Penduduk_Miskin',
           hover_data=['Kota_Kabupaten'],color='Regional')
In [54]:
px.scatter(data_frame=new_df[['Kota_Kabupaten','Nilai_UMR','Jumlah_Penduduk_Miskin','Jumlah_Penduduk_Bekerja','Regional']],x='Nilai_UMR',y='Jumlah_Penduduk_Bekerja',
           hover_data=['Kota_Kabupaten'],color='Regional')
In [55]:
#Dari grafik di atas tidak ada korelasi antara UMR dengan Jumlah Penduduk Miskin dengan jumlah penduduk bekerja

Selain Jumlah Pemilik Ponsel, variabel apa saja yang paling memiliki korelasi tinggi terhadap Jumlah Pengguna Ponsel?

In [56]:
new_df.corr()
Out[56]:
ID PDRB PDRB_Per_Kapita Indeks_Pembangunan_Manusia Jumlah_Penduduk Luas_Wilayah Dana_Alokasi_Umum Pengeluaran_Riil_per_Kapita_ per_Tahun Nilai_UMR Jumlah_Penduduk_Miskin Jumlah_Penduduk_Bekerja Pengguna_Internet Pemilik_Ponsel Pengguna_Ponsel Jumlah_Kelurahan Jumlah_Desa
ID 1.000000 -0.146372 -0.026450 -0.197277 -0.223412 0.139308 -0.180636 -0.065458 -0.100353 -0.178880 -0.221005 -0.188235 -0.222993 -0.209471 -0.088595 -0.124872
PDRB -0.146372 1.000000 0.566991 0.368471 0.621570 -0.058960 0.341459 0.732544 0.276607 0.357188 0.611170 0.592351 0.628433 0.649501 0.458050 -0.063050
PDRB_Per_Kapita -0.026450 0.566991 1.000000 0.318724 0.061931 0.139648 -0.068822 0.468782 0.221679 -0.093539 0.044490 0.125052 0.087520 0.091263 0.208878 -0.237098
Indeks_Pembangunan_Manusia -0.197277 0.368471 0.318724 1.000000 0.260165 -0.175041 0.110825 0.200143 0.015051 0.028405 0.279400 0.344751 0.326447 0.318559 0.518657 -0.338871
Jumlah_Penduduk -0.223412 0.621570 0.061931 0.260165 1.000000 -0.131177 0.844211 0.238573 0.058191 0.859788 0.981933 0.859397 0.958763 0.960001 0.329860 0.304533
Luas_Wilayah 0.139308 -0.058960 0.139648 -0.175041 -0.131177 1.000000 0.006746 -0.052670 0.133903 -0.117883 -0.150983 -0.114209 -0.131128 -0.136824 -0.153337 0.097159
Dana_Alokasi_Umum -0.180636 0.341459 -0.068822 0.110825 0.844211 0.006746 1.000000 -0.001184 -0.060798 0.834299 0.820713 0.672676 0.782137 0.785831 0.256887 0.496895
Pengeluaran_Riil_per_Kapita_ per_Tahun -0.065458 0.732544 0.468782 0.200143 0.238573 -0.052670 -0.001184 1.000000 0.209343 0.063120 0.214518 0.146718 0.299608 0.280906 0.152155 -0.129865
Nilai_UMR -0.100353 0.276607 0.221679 0.015051 0.058191 0.133903 -0.060798 0.209343 1.000000 -0.102887 0.039498 0.140519 0.083569 0.029975 0.049664 0.000591
Jumlah_Penduduk_Miskin -0.178880 0.357188 -0.093539 0.028405 0.859788 -0.117883 0.834299 0.063120 -0.102887 1.000000 0.844840 0.646922 0.782929 0.789946 0.116522 0.491443
Jumlah_Penduduk_Bekerja -0.221005 0.611170 0.044490 0.279400 0.981933 -0.150983 0.820713 0.214518 0.039498 0.844840 1.000000 0.852048 0.947258 0.943609 0.343405 0.281663
Pengguna_Internet -0.188235 0.592351 0.125052 0.344751 0.859397 -0.114209 0.672676 0.146718 0.140519 0.646922 0.852048 1.000000 0.855355 0.874557 0.431783 0.102596
Pemilik_Ponsel -0.222993 0.628433 0.087520 0.326447 0.958763 -0.131128 0.782137 0.299608 0.083569 0.782929 0.947258 0.855355 1.000000 0.957787 0.372652 0.229209
Pengguna_Ponsel -0.209471 0.649501 0.091263 0.318559 0.960001 -0.136824 0.785831 0.280906 0.029975 0.789946 0.943609 0.874557 0.957787 1.000000 0.389275 0.231967
Jumlah_Kelurahan -0.088595 0.458050 0.208878 0.518657 0.329860 -0.153337 0.256887 0.152155 0.049664 0.116522 0.343405 0.431783 0.372652 0.389275 1.000000 -0.322088
Jumlah_Desa -0.124872 -0.063050 -0.237098 -0.338871 0.304533 0.097159 0.496895 -0.129865 0.000591 0.491443 0.281663 0.102596 0.229209 0.231967 -0.322088 1.000000
In [57]:
px.scatter_matrix(data_frame=new_df[['Pengguna_Ponsel','Jumlah_Penduduk', 'Dana_Alokasi_Umum', 'Jumlah_Penduduk_Miskin', 'Jumlah_Penduduk_Bekerja', 'Pengguna_Internet', 'Pemilik_Ponsel']],
                  height=2000)

Pengguna Ponsel memiliki korelasi dengan Jumlah_Penduduk, Dana_Alokasi_Umum, Jumlah_Penduduk_Miskin, Jumlah_Penduduk_Bekerja, Pengguna_Internet, Pemilik_Ponsel

In [ ]:
 

Apakah jumlah Pengguna Ponsel di suatu Area berkorelasi dengan Jumlah Kelurahan/Desa dan Kepadatan Penduduknya?

In [82]:
#Membuat kolom baru Kepadtan Penduduk
new_df['Kepadatan_Penduduk'] = new_df.Jumlah_Penduduk / new_df.Luas_Wilayah
In [83]:
KepadatanPenduduk = new_df.groupby(['Area','Jumlah_Kelurahan','Jumlah_Desa','Kepadatan_Penduduk'])['Pengguna_Ponsel'].sum().reset_index()
In [60]:
KepadatanPenduduk.corr()
Out[60]:
Jumlah_Kelurahan Jumlah_Desa Kepadatan_Penduduk Pengguna_Ponsel
Jumlah_Kelurahan 1.000000 -0.322088 0.539681 0.389275
Jumlah_Desa -0.322088 1.000000 -0.312623 0.231967
Kepadatan_Penduduk 0.539681 -0.312623 1.000000 0.450904
Pengguna_Ponsel 0.389275 0.231967 0.450904 1.000000
In [61]:
px.scatter(data_frame=KepadatanPenduduk,x='Kepadatan_Penduduk',y='Pengguna_Ponsel',
           color='Area',facet_col='Area')
In [86]:
px.scatter(data_frame=KepadatanPenduduk,x='Jumlah_Desa',y='Pengguna_Ponsel',
           color='Area',facet_col='Area')
In [85]:
px.scatter(data_frame=KepadatanPenduduk,x='Jumlah_Kelurahan',y='Pengguna_Ponsel',
           color='Area',facet_col='Area')
In [64]:
#Kepadatan Penduduk dengan pengguna ponsel ada korelasi 0.450904 	

Mengapa nilai korelasi antara PDRB vs Pengguna Ponsel berbeda jauh dengan PDRB Per Kapita vs Pengguna Ponsel?

In [65]:
new_df[['PDRB','PDRB_Per_Kapita','Pengguna_Ponsel']].corr()
Out[65]:
PDRB PDRB_Per_Kapita Pengguna_Ponsel
PDRB 1.000000 0.566991 0.649501
PDRB_Per_Kapita 0.566991 1.000000 0.091263
Pengguna_Ponsel 0.649501 0.091263 1.000000
In [66]:
a = new_df[['PDRB','PDRB_Per_Kapita','Pengguna_Ponsel']]
In [67]:
#Normalisasi data PDRB_Per_Kapita
New_PDRB_Per_Kapita = []
for x in a.values:
  if x[1] > x[0]:
    hasil = x[1] / 10
    New_PDRB_Per_Kapita.append(hasil)
  else:
    New_PDRB_Per_Kapita.append(x[1])
In [68]:
a['New_PDRB_Per_Kapita'] = New_PDRB_Per_Kapita
a.corr()
C:\Users\root\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: SettingWithCopyWarning:


A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

Out[68]:
PDRB PDRB_Per_Kapita Pengguna_Ponsel New_PDRB_Per_Kapita
PDRB 1.000000 0.566991 0.649501 0.873868
PDRB_Per_Kapita 0.566991 1.000000 0.091263 0.447060
Pengguna_Ponsel 0.649501 0.091263 1.000000 0.637049
New_PDRB_Per_Kapita 0.873868 0.447060 0.637049 1.000000
In [69]:
px.scatter_matrix(data_frame=a[['PDRB','New_PDRB_Per_Kapita','Pengguna_Ponsel']],height=1000)
In [70]:
#Data PDRB_Per_Kapita perlu di normaliasi

Menambahkan kolom baru New_PDRB_Per_Kapita ke dalam new_df kemudian di save ke excel

In [71]:
new_df['New_PDRB_Per_Kapita'] = New_PDRB_Per_Kapita
new_df.to_excel('Data_Bersih.xlsx',index=False)
In [ ]: